/**
 * 系统平台
 * moonvip_admin
 * com.tz.dao.role
 * IRoleMapper.java
 * 创建人:小胡 
 *
 *
 */
package com.tz.dao.role;

import com.tz.bean.Role;
import com.tz.bean.TzParams;
import org.apache.ibatis.annotations.Param;

import java.util.HashMap;
import java.util.List;

/**
 * 角色管理Mapper
 * IRoleMapper
 * 创建人:小胡 
 * 时间：2016年11月26日 14:39:13
 * @version 1.0.0
 * 
 */
public interface IRoleMapper {


	/**
	 *
	 * com.tz.dao.role
	 * 方法名：findRoles
	 * 创建人：hufanglei
	 * 手机号码:15166195973
	 * 时间：2016年03月18日 09:29:15
	 * @param params
	 * @return
	 * 返回类型：List<Role>
	 * @exception
	 * @since  1.0.0
	 */
	public List<Role> findRoles(TzParams params);

	/**
	 * 求总数
	 * com.tz.dao.role
	 * 方法名：count
	 * 创建人：hufanglei
	 * 手机号码:15166195973
	 * 时间：2016年03月18日 09:29:15
	 * @param id
	 * @return
	 * 返回类型：List<Role>
	 * @exception
	 * @since  1.0.0
	 */
	public int count(TzParams params);

	/**
	 *
	 * com.tz.dao.role
	 * 方法名：getRole
	 * 创建人：hufanglei
	 * 手机号码:15166195973
	 * 时间：2016年03月18日 09:29:15
	 * @param id
	 * @return
	 * 返回类型：List<Role>
	 * @exception
	 * @since  1.0.0
	 */
	public Role get(Integer id);

	/**
	 * 保存角色管理
	 * com.tz.dao.role
	 * 方法名：save
	 * 创建人：hufanglei
	 * 手机号码:15166195973
	 * 时间：2016年03月18日 09:29:15
	 * @param role
	 * @return
	 * 返回类型：Role
	 * @exception
	 * @since  1.0.0
	 */
	public int save(Role role);

	/**
	 * 更新角色管理
	 * com.tz.dao.role
	 * 方法名：update
	 * 创建人：hufanglei
	 * 手机号码:15166195973
	 * 时间：2016年03月18日 09:29:15
	 * @param role
	 * @return
	 * 返回类型：int
	 * @exception
	 * @since  1.0.0
	 */
	public int update(Role role);

	/**
	 * 删除角色管理
	 * com.tz.dao.role
	 * 方法名：delete
	 * 创建人：hufanglei
	 * 手机号码:15166195973
	 * 时间：2016年03月18日 09:29:15
	 * @param params
	 * @return
	 * 返回类型：int
	 * @exception
	 * @since  1.0.0
	 */
	public int delete(TzParams params);

	/**
	 * 描述: 给用户绑定角色
	 * 包名： com.tz.dao.role
	 * 类名：IRoleMapper
	 * 方法名: saveUserRole
	 * 参数类型: [userId, roleId]
	 * 创建人：hufanglei
	 * 时间：2016/3/18   14:02
	 * qq：690328661
	 * @return int    saveRolePermission
	 */
	public int saveRoleUser(@Param("userId") Integer userId,@Param("roleId") Integer roleId);

	/**
	 * 描述: 保存 角色_权限表
	 * 包名： com.tz.dao.role
	 * 类名：IRoleMapper
	 * 方法名: saveRolePermission
	 * 参数类型: [userId, roleId]
	 * 创建人：hufanglei
	 * 时间：2016/3/18   16:06
	 * qq：690328661
	 * @return int
	 */
	public int saveRolePermission(@Param("roleId") Integer roleId,@Param("permissionId") Integer permissionId);



	/**
	 * 描述: 删除某一个角色下所有的权限
	 * 包名： com.tz.dao.role
	 * 类名：IRoleMapper
	 * 方法名: deleteRolePermission
	 * 参数类型: [roleId]
	 * 创建人：hufanglei
	 * 时间：2016/3/18   16:58
	 * qq：690328661
	 * @return int
	 */
	public int deleteRolePermission(@Param("roleId")Integer roleId);

	/**
	 * 描述: 得到所有没绑定过角色的用户
	 * 包名： com.tz.dao.role
	 * 类名：IRoleMapper
	 * 方法名: findFilterUsers
	 * 参数类型: [params]
	 * 创建人：hufanglei
	 * 时间：2016/3/18   14:48
	 * qq：690328661
	 * @return java.util.HashMap<java.lang.String,java.lang.Object>
	 */
	public List<HashMap<String ,Object>> findFilterUsers(TzParams params);

	/**
	 * 描述: 计算所有没绑定过角色的用户数量
	 * 包名： com.tz.dao.role
	 * 类名：IRoleMapper
	 * 方法名: countFilterUsers
	 * 参数类型: [params]
	 * 创建人：hufanglei
	 * 时间：2016/3/18   14:51
	 * qq：690328661
	 * @return int
	 */
	public int countFilterUsers(TzParams params);


	/**
	 * 描述: 查询角色下已经绑定的所有权限
	 * 包名： com.tz.dao.role
	 * 类名：IRoleMapper
	 * 方法名: findPermissionByRoleId
	 * 参数类型: [roleId]
	 * 创建人：hufanglei
	 * 时间：2016/3/19   9:30
	 * qq：690328661
	 * @return java.lang.Integer[]
	 */
	public Integer[] findPermissionByRoleId(@Param("roleId")Integer roleId);


	/**
	 * 描述: 查询用户的所有角色
	 * 包名： com.tz.dao.role
	 * 类名：IRoleMapper
	 * 方法名: findRolesByUserId
	 * 参数类型: [userId]
	 * 创建人：hufanglei
	 * 时间：2016/3/19   10:33
	 * qq：690328661
	 * @return java.util.HashMap<java.lang.String,java.lang.Object>
	 */
	public HashMap<String,Object> findRolesByUserId(@Param("userId") Integer userId);

}
